package template;

class FixedSizeStack<T>{
    private int index = 0;
    private Object[] storage;
    public FixedSizeStack(int iSize){
        storage = new Object[iSize];
    }
    public void push(T item){storage[index++] = item;}
    @SuppressWarnings("unchecked") //
    public T pop() {return (T)storage[--index];}
}
public class GenericCast {
    public static final int Size = 10;
    public static void main(String[] args){
        FixedSizeStack<String> strings = new FixedSizeStack<String>(Size);
        for (String s : "A,B,C,D,E,F,G,H,I,J".split(",")){
            strings.push(s);
        }
        for (int i = 0 ;i < Size;i++){
            String s = strings.pop();
            System.out.println(s);
        }
    }
}
